package com.zhongwang.business.module.main.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhongwang.business.base.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.*;
import java.util.Date;

/**
 * @Description: 产品结构主表
 *
 * @Author: China.kxx
 * @Date: 2021/4/13 12:44
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Entity
@Table(name = "dsn_pro_struct")
public class DsnProStruct extends BaseModel {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    /** 产品部分 */
    private String proPart;

    /** 项目主键 */
    private Integer proId;

    /** 项目编码 */
    private String proCode;

    /** 项目名称 */
    private String proName;

    /** 专业（机械、流体、自动化） */
    private Integer specialId;

    /** 专业名称 */
    private String special;

    /** 产品ID */
    private Integer productId;

    /** 产品名称 */
    private String productName;

    /** 状态（1=保存 2=提交 3=审核通过） */
    @Column(nullable = false, columnDefinition = "tinyint")
    private Integer status = 1;

    /** 驳回原因 */
    private String rejectReason;

    /** 创建人编号 */
    private String createCode;

    /** 创建人 */
    private String createName;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime = new Date();

    /** 审核人编号 */
    private String verifyCode;

    /** 审核人 */
    private String verifyName;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date verifyTime;

    /** 删除状态 0：默认， 1：删除， 2：作废 */
    @Column(nullable = false, columnDefinition = "tinyint")
    private Integer isDel = 0;

    /** 项目数量 */
    @Transient
    private Integer proNum;

    /** Pid */
    @Transient
    private Integer pid;

    /** 科室外键 */
    private Integer deptId;

    /** 执行状态 1=未开始 2=执行中 3=已完成 4=不需要 */
    private Integer compStatus = 1;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;

    /** 备注 */
    private String remark;

    /** 维护人员 */
    private String updateName;

    /** 维护时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date updateTime;

    /** 部门名称 */
    @Transient
    private String deptName;

    /** 任务类型 */
    @Transient
    private String comTaskNameId;

}